package controllers;

import models.*;
import play.data.Form;
import play.mvc.*;
import views.html.index;
import views.html.fiche;


public class Fiches extends Controller{

	static play.data.Form<Produit> ficheForm = form(Produit.class);
	static Form<Produit> filledForm = ficheForm.bindFromRequest();
	
	static play.data.Form<Fiche> Form = form(Fiche.class);
	static Form<Fiche> fForm = Form.bindFromRequest();

	public static Result fiches(Long id) {

		if(id==0){
			return ok(
					fiche.render(new Long(1),id,filledForm,fForm,Fiche.find.byId(id))
					);			
		}else{
			Produit _prod=Produit.find.byId(id);
			Fiche _fich = new Fiche(_prod);
			ficheForm = form(Produit.class).fill(_prod);		
			return ok(
					fiche.render(new Long(1),id,filledForm,fForm, _fich)
					);
		}
	}
	

	public static Fiche findbyName(String label){
		return Fiche.findNom.where().eq("label",label).findUnique();
	}
	
//	public static Fiche findByProd(Long prod){
//		Produit _prod=Produit.find.byId(prod);
//		return Fiche.find.where().eq("prod.id",prod);
//	}

	public static Result add(Long id) {
	
		if(filledForm.hasErrors()) {
			flash("error","OOOooops!!! Remplir les champs manquants.");
			return badRequest(
					views.html.fiche.render(new Long(1),id,null,null,null));
		}else { // <--- on n'enregistre que si tout va bien
			Produit _prod=Produit.find.byId(id);
			Fiche _fiche = new Fiche(_prod);
			if(findbyName(_fiche.label)==null){
				Fiche.create(_fiche); 
				flash("success", "The descriptive sheet ### "
						+ filledForm.get().label + " ### has been created");
			}	
			else{
				Fiche.update(id);
				flash("error", "The product ### "
						+ filledForm.get().label + " ### possesses already descriptive sheet !");
			}
			return redirect(routes.Produits.produits(id));  //redirigez vers visualisez configuration
		}
	}
	
	public static void visualiserConfig(Long id) {

		
	}
	
}
